﻿
using System;
using System.Collections.Generic;
using BlueFace.VoIP.Net.SIP;
using BlueFace.VoIP.SIPServer;

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="SIPProxyWebService")]
public interface SIPProxyWebService
{
    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/SIPProxyWebService/IsAlive", ReplyAction="http://tempuri.org/SIPProxyWebService/IsAliveResponse")]
    bool IsAlive();
    
    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/SIPProxyWebService/GetActiveCalls", ReplyAction="http://tempuri.org/SIPProxyWebService/GetActiveCallsResponse")]
    BlueFace.Sys.WebServices.XMLServiceResultStruct GetActiveCalls(string username);

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/SIPProxyWebService/GetCallDetails", ReplyAction="http://tempuri.org/SIPProxyWebService/GetCallDetailsResponse")]
    string GetCallDetails(string callId);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/AddSIPRegistration", ReplyAction = "http://tempuri.org/SIPProxyWebService/AddSIPRegistrationResponse")]
    void AddSIPRegistration(UserRegistration userRegistration);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/DeleteSIPRegistration", ReplyAction = "http://tempuri.org/SIPProxyWebService/DeleteSIPRegistrationResponse")]
    void DeleteSIPRegistration(Guid registrationId);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/GetCurrentSIPRegistrations", ReplyAction = "http://tempuri.org/SIPProxyWebService/GetCurrentSIPRegistrationsResponse")]
    List<UserRegistration> GetCurrentSIPRegistrations(string owner);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/RemoveSIPContact", ReplyAction = "http://tempuri.org/SIPProxyWebService/RemoveSIPContactResponse")]
    void RemoveSIPContact(Guid registrationId, string contactToRemove);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/RefreshRegistrationView", ReplyAction = "http://tempuri.org/SIPProxyWebService/RefreshRegistrationViewResponse")]
    void RefreshRegistrationView(Guid registrationId);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/GetSwitchRegistration", ReplyAction = "http://tempuri.org/SIPProxyWebService/GetSwitchRegistrationResponse")]
    SIPRegistrarRecord GetSwitchRegistration(SIPParameterlessURI addressOfRecord);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/SendMWIRequest", ReplyAction = "http://tempuri.org/SIPProxyWebService/SendMWIRequestResponse")]
    void SendMWIRequest(string userAgentURI, bool setMWI, string username);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/SendInviteRequest", ReplyAction = "http://tempuri.org/SIPProxyWebService/SendInviteRequestResponse")]
    void SendInviteRequest(string userAgentURI, string callerIdName, string callerIdUser, string username);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/HoldCall", ReplyAction = "http://tempuri.org/SIPProxyWebService/HoldCallResponse")]
    void HoldCall(string username, Guid switchCallId);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/RetreiveCall", ReplyAction = "http://tempuri.org/SIPProxyWebService/RetreiveCallResponse")]
    void RetreiveCall(string username, Guid switchCallId);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/HangupCall", ReplyAction = "http://tempuri.org/SIPProxyWebService/HangupCallResponse")]
    void HangupCall(string username, Guid switchCallId);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/TransferCall", ReplyAction = "http://tempuri.org/SIPProxyWebService/TransferCallResponse")]
    void TransferCall(string username, Guid switchCallId, string transferTo);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/ForwardCall", ReplyAction = "http://tempuri.org/SIPProxyWebService/ForwardCallResponse")]
    void ForwardCall(string username, Guid switchCallId, string forwardTo);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/DeleteAllUserSIPRegistrations", ReplyAction = "http://tempuri.org/SIPProxyWebServiceDeleteAllUserSIPRegistrationsResponse")]
    void DeleteAllUserSIPRegistrations(string owner);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/AddRegistrarDomain", ReplyAction = "http://tempuri.org/SIPProxyWebService/AddRegistrarDomainResponse")]
    void AddRegistrarDomain(string domain);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/AddRegistrarDomainAlias", ReplyAction = "http://tempuri.org/SIPProxyWebService/AddRegistrarDomainAliasResponse")]
    void AddRegistrarDomainAlias(string domain, string alias);

    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/SIPProxyWebService/RemoveRegistrarDomain", ReplyAction = "http://tempuri.org/SIPProxyWebService/RemoveRegistrarDomainResponse")]
    void RemoveRegistrarDomain(string domain);
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class SIPProxyWebServiceClient : System.ServiceModel.ClientBase<SIPProxyWebService>, SIPProxyWebService
{
    
    public SIPProxyWebServiceClient()
    {
    }
    
    public SIPProxyWebServiceClient(string endpointConfigurationName) : 
            base(endpointConfigurationName)
    {
    }
    
    public SIPProxyWebServiceClient(string endpointConfigurationName, string remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }
    
    public SIPProxyWebServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }
    
    public SIPProxyWebServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(binding, remoteAddress)
    {
    }
    
    public bool IsAlive()
    {
        return base.Channel.IsAlive();
    }

    public BlueFace.Sys.WebServices.XMLServiceResultStruct GetActiveCalls(string username)
    {
        return base.Channel.GetActiveCalls(username);
    }

    public string GetCallDetails(string callId)
    {
        return base.Channel.GetCallDetails(callId);
    }

    public void AddSIPRegistration(UserRegistration userRegistration)
    {
        base.Channel.AddSIPRegistration(userRegistration);
    }

    public void DeleteSIPRegistration(Guid registrationId)
    {
        base.Channel.DeleteSIPRegistration(registrationId);
    }

    public List<UserRegistration> GetCurrentSIPRegistrations(string owner)
    {
        return base.Channel.GetCurrentSIPRegistrations(owner);
    }

    public SIPRegistrarRecord GetSwitchRegistration(SIPParameterlessURI addressOrRecord)
    {
        return base.Channel.GetSwitchRegistration(addressOrRecord);
    }

    public void RemoveSIPContact(Guid registrationId, string contactToRemove)
    {
        base.Channel.RemoveSIPContact(registrationId, contactToRemove);
    }

    public void RefreshRegistrationView(Guid registrationId)
    {
        base.Channel.RefreshRegistrationView(registrationId);
    }

    public void SendMWIRequest(string userAgentURI, bool setMWI, string username)
    {
        base.Channel.SendMWIRequest(userAgentURI, setMWI, username);
    }

    public void SendInviteRequest(string userAgentURI, string callerIdName, string callerIdUser, string username)
    {
        base.Channel.SendInviteRequest(userAgentURI, callerIdName, callerIdUser, username);
    }

    public void HoldCall(string username, Guid switchCallId)
    {
        base.Channel.HoldCall(username, switchCallId);
    }

    public void RetreiveCall(string username, Guid switchCallId)
    {
        base.Channel.RetreiveCall(username, switchCallId);
    }

    public void HangupCall(string username, Guid switchCallId)
    {
        base.Channel.HangupCall(username, switchCallId);
    }

    public void TransferCall(string username, Guid switchCallId, string transferTo)
    {
        base.Channel.TransferCall(username, switchCallId, transferTo);
    }

    public void ForwardCall(string username, Guid switchCallId, string forwardTo)
    {
        base.Channel.ForwardCall(username, switchCallId, forwardTo);
    }

    public void DeleteAllUserSIPRegistrations(string owner)
    {
        base.Channel.DeleteAllUserSIPRegistrations(owner);
    }

    public void AddRegistrarDomain(string domain)
    {
        base.Channel.AddRegistrarDomain(domain);
    }

    public void AddRegistrarDomainAlias(string domain, string alias)
    {
        base.Channel.AddRegistrarDomainAlias(domain, alias);
    }

    public void RemoveRegistrarDomain(string domain)
    {
        base.Channel.RemoveRegistrarDomain(domain);
    }
}
